home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1996 #14
/
Monster Media No. 14 (April 1996) (Monster Media, Inc.).ISO
/
pcboard
/
newflg51.zip
/
NEWFLAG.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1996-01-25
|
7KB
|
598 lines
;------------------------------------------------------------------------------
; .ss.
; `²²'
; .,sS$Ss,,s$ .,sS$$$Ss. .,sS$Ss,,s$ .ss. .sSs.
; .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
; $$$' .$$$' $$$²Sçsµ²' .$$$' .$$$'.$$$' .$$$' `$$b.
; $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$' ;$$$
; `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
; .sS²°$$$²²°"' d²°'
; .$$² .$$'
; $$$.,d$$'
; `²S$$S²'
;------------------------------------------------------------------------------
; P.P.L.X. 2.OO (C)1996 - Lone Runner / AEGiS CoRP'96
;------------------------------------------------------------------------------
; PPE 3.2O (Encryption type I) - Analysis ON - Postprocessing ON
;------------------------------------------------------------------------------
Boolean BOOLEAN001
Boolean TBOOLEAN002(23)
Boolean BOOLEAN003
Boolean BOOLEAN004
Boolean BOOLEAN005
Integer INTEGER002
String STRING002
String TSTRING003(102)
String TSTRING004(102)
String STRING005
String TSTRING006(23)
String TSTRING007(23)
String STRING008
String STRING009
String STRING010
String STRING011
String STRING012
String STRING013
String STRING014
Int INT002
Int TINT003(23)
Int INT004
Int INT005
Int INT006
Int INT007
Int INT008
Int INT009
Int INT010
Int INT011
Int INT012
Int INT013
Declare Function FUNCTION001(String STRING015) Boolean
Declare Procedure PROC001(String STRING001, Int INT001, Integer INTEGER001)
Declare Procedure PROC002()
Declare Procedure PROC003()
Declare Procedure PROC004()
Declare Procedure PROC005()
Declare Procedure PROC006()
Declare Procedure PROC007()
Declare Procedure PROC008()
Declare Procedure PROC009()
Declare Procedure PROC010()
Declare Procedure PROC011()
Declare Procedure PROC012()
Declare Procedure PROC013()
Declare Procedure PROC014()
Declare Procedure PROC015()
Declare Procedure PROC016()
Declare Procedure PROC017()
;------------------------------------------------------------------------------
Goto LABEL001
End
;------------------------------------------------------------------------------
Procedure PROC001(String STRING001, Int INT001, Integer INTEGER001)
If (Crc32(0, STRING001) / 5 + INT001 == INTEGER001) Then
BOOLEAN001 = 1
Else
BOOLEAN001 = 0
Endif
EndProc
:LABEL001
INT012 = 100
INT002 = 0
If (Exist(PPEPath() + "FLAG" + String(PcbNode()) + ".@@@")) Then
Delete PPEPath() + "FLAG" + String(PcbNode()) + ".@@@"
KbdStuff Chr(13)
End
ElseIf (Exist(PPEPath() + "VIEW" + String(PcbNode()) + ".@@@")) Then
Wait
FOpen 1, PPEPath() + "VIEW" + String(PcbNode()) + ".@@@", 0, 0
FGet 1, INT002
FGet 1, STRING005
FGet 1, INT006
FGet 1, INT007
For INT004 = 1 To 23
FGet 1, TSTRING007(INT004)
FGet 1, TINT003(INT004)
FGet 1, TSTRING006(INT004)
Next
FClose 1
Delete PPEPath() + "VIEW" + String(PcbNode()) + ".@@@"
RestScrn
BOOLEAN004 = 1
ElseIf (Exist(PPEPath() + "END" + String(PcbNode()) + ".@@@")) Then
Delete PPEPath() + "END" + String(PcbNode()) + ".@@@"
KbdStuff "N" + Chr(13)
End
Else
If (AnsiOn()) Goto LABEL002
DispFile PPEPath() + "PROMPT2.DAT", 0
End
Endif
:LABEL002
PROC014()
PROC001(STRING010, 12995, INTEGER002)
PROC015()
PROC002()
PROC011()
End
;------------------------------------------------------------------------------
Procedure PROC002()
If (BOOLEAN004) Goto LABEL003
DispFile PPEPath() + "PROMPT1.DAT", 0
PROC003()
PROC005()
:LABEL003
PROC007()
:LABEL004
If (BOOLEAN003) Goto LABEL005
STRING009 = Upper(Inkey())
Select Case (STRING009)
Case "8"
STRING009 = "UP"
Case "2"
STRING009 = "DOWN"
End Select
Select Case (STRING009)
Case " ", Chr(13)
PROC006()
Case "UP"
PROC004()
Case "DOWN"
PROC005()
Case "Q"
For INT004 = 1 To 23
If (TSTRING007(INT004) <> "") STRING008 = STRING008 + " " + TSTRING007(INT004)
Next
If (STRING008 <> "") Then
KbdStuff "F" + STRING008 + Chr(13)
FCreate 1, PPEPath() + "END" + String(PcbNode()) + ".@@@", 1, 0
FPut 1, "Leave this file alone!! ;)"
FClose 1
Else
KbdStuff "N"
Endif
End
Case "N", "PGDN"
BOOLEAN003 = 1
Case "V"
PROC013()
Case "?", "H"
PROC012()
Case "!"
PROC010()
End Select
Goto LABEL004
:LABEL005
EndProc
;------------------------------------------------------------------------------
Procedure PROC003()
INT009 = 1
While (INT009 > 0) Do
ScrFile INT009, STRING005
If (INT009 <> 0) Then
TSTRING006(INT009) = STRING005
TINT003(INT009) = INT009
TBOOLEAN002(INT009) = FUNCTION001(STRING005)
Inc INT009
Endif
EndWhile
EndProc
;------------------------------------------------------------------------------
Procedure PROC004()
INT008 = INT002 - 1
While ((INT008 <> 0) && (TSTRING006(INT008) == "")) Do
INT008 = INT008 - 1
EndWhile
If (INT008 <> 0) Then
INT002 = INT008
PROC007()
Endif
EndProc
;------------------------------------------------------------------------------
Procedure PROC005()
INT008 = INT002 + 1
While ((INT008 <> 24) && (TSTRING006(INT008) == "")) Do
Inc INT008
EndWhile
If (INT008 <> 24) Then
INT002 = INT008
PROC007()
Else
BOOLEAN003 = 1
Endif
EndProc
;------------------------------------------------------------------------------
Procedure PROC006()
If (TSTRING007(INT002) == TSTRING006(INT002)) Then
TSTRING007(INT002) = ""
PROC007()
Else
TSTRING007(INT002) = TSTRING006(INT002)
PROC007()
Endif
EndProc
;------------------------------------------------------------------------------
Procedure PROC007()
If (((INT002 > 0) && (INT002 < 24)) && (TSTRING006(INT002) <> "")) Then
PROC008()
If (INT007 > 0) Then
AnsiPos 1, INT007
Print STRING012 + TSTRING006(INT006)
Endif
AnsiPos 1, TINT003(INT002)
INT007 = GetY()
INT006 = INT002
If (TBOOLEAN002(INT002) == 1) Then
Print STRING014 + TSTRING006(INT002) + "@X0F"
Goto LABEL006
Endif
Print STRING013 + TSTRING006(INT002) + "@X0F"
:LABEL006
STRING002 = TSTRING006(INT002)
If (TSTRING007(INT002) == STRING002) Then
Print "@X8E", Chr(251)
Goto LABEL007
Endif
Print "@X0F "
:LABEL007
PROC009()
Endif
EndProc
;------------------------------------------------------------------------------
Procedure PROC008()
INT010 = GetX()
INT011 = GetY()
EndProc
;------------------------------------------------------------------------------
Procedure PROC009()
AnsiPos INT010, INT011
EndProc
;------------------------------------------------------------------------------
Procedure PROC010()
SaveScrn
Cls
Print "@X0E@POFF@"
For INT004 = 1 To 23
FreshLine
Print TINT003(INT004), " ", TSTRING006(INT004), " ", TBOOLEAN002(INT004)
Next
AnsiPos 30, 1
Print "Filenum: ", INT002
AnsiPos 30, 2
Print "OLDFILEPOS: ", INT007
AnsiPos 30, 3
Print "OLDFILENUM: ", INT006
AnsiPos 30, 23
Print "Press any key to continue..."
While ((Inkey() == "")) Print ""
Print "@PON@"
RestScrn
EndProc
;------------------------------------------------------------------------------
Procedure PROC011()
For INT004 = 1 To 23
If (TSTRING007(INT004) <> "") STRING008 = STRING008 + " " + TSTRING007(INT004)
Next
If (STRING008 <> "") Then
KbdStuff "F" + STRING008 + Chr(13)
FCreate 1, PPEPath() + "FLAG" + String(PcbNode()) + ".@@@", 1, 0
FPut 1, "Leave this file alone!! ;)"
FClose 1
Else
KbdStuff Chr(13)
Endif
If (BOOLEAN001) Goto LABEL008
Cls
PrintLn "@X0EUnregistered!!!"
For INT005 = 1 To 5
Print "."
Delay 4
Next
:LABEL008
EndProc
;------------------------------------------------------------------------------
Procedure PROC012()
SaveScrn
If (BOOLEAN001) Goto LABEL009
Cls
PrintLn "@X0EUnregistered!!!"
For INT005 = 1 To 10
Print "."
Delay 5
Next
:LABEL009
Cls
DispFile PPEPath() + "HELP", 2 + 1 + 4
Wait
RestScrn
EndProc
;------------------------------------------------------------------------------
Procedure PROC013()
SaveScrn
If (BOOLEAN001) Goto LABEL010
Cls
PrintLn "@X0EUnregistered!!!"
For INT005 = 1 To 10
Print "."
Delay 5
Next
:LABEL010
Cls
PrintLn "@X0FViewing file @X09", TSTRING006(INT002)
FCreate 1, PPEPath() + "VIEW" + String(PcbNode()) + ".@@@", 1, 0
FPutLn 1, INT002
FPutLn 1, STRING005
FPutLn 1, INT006
FPutLn 1, INT007
For INT004 = 1 To 23
FPutLn 1, TSTRING007(INT004)
FPutLn 1, TINT003(INT004)
FPutLn 1, TSTRING006(INT004)
Next
FClose 1
KbdStuff "V " + TSTRING006(INT002)
End
EndProc
;------------------------------------------------------------------------------
Procedure PROC014()
FOpen 2, PPEPath() + "NEWFLAG.CFG", 0, 0
FGet 2, STRING010
FGet 2, STRING011
FGet 2, INTEGER002
FGet 2, STRING012
FGet 2, STRING013
FGet 2, STRING014
FClose 2
EndProc
;------------------------------------------------------------------------------
Function FUNCTION001(String STRING015) Boolean
Int INT013
FUNCTION001 = 0
For INT013 = 3 To INT012
If (STRING015 == TSTRING003(INT013)) Then
FUNCTION001 = 1
INT013 = INT012
Continue
Endif
If (TSTRING003(INT013) == "") Then
INT013 = INT012
Endif
Next
EndFunc
;------------------------------------------------------------------------------
Procedure PROC015()
If (Exist(PPEPath() + "FLAG" + String(CurConf()) + ".DBF")) Goto LABEL011
TSTRING004(1) = "Name,C,20,0"
TSTRING004(2) = "Lastnum,N,2,0"
For INT004 = 3 To INT012 + 2
TSTRING004(INT004) = "FILE" + String(INT004 - 2) + ",C,12,0"
Next
DCreate 1, PPEPath() + "FLAG" + String(CurConf()) + ".DBF", 0, TSTRING004(BOOLEAN000)
DAdd 1
DGo 1, 1
PROC017()
Goto LABEL012
:LABEL011
DOpen 1, PPEPath() + "FLAG" + String(CurConf()) + ".DBF", 0
:LABEL012
If (Exist(PPEPath() + "FLAG" + String(CurConf()) + ".NDX")) Goto LABEL013
DnCreate 1, PPEPath() + "FLAG" + String(CurConf()) + ".NDX", "Name"
Goto LABEL014
:LABEL013
DnOpen 1, PPEPath() + "FLAG" + String(CurConf()) + ".NDX"
:LABEL014
DGo 1, 1
If (DSeek(1, U_Name())) Goto LABEL015
DAdd 1
DGo 1, DRecCount(1)
DPut 1, "Name", U_Name()
DPut 1, "Lastnum", "1"
Goto LABEL016
:LABEL015
DSeek 1, U_Name()
PROC016()
:LABEL016
EndProc
;------------------------------------------------------------------------------
Procedure PROC016()
DGet 1, "Name", TSTRING003(1)
DGet 1, "Lastnum", TSTRING003(2)
For INT004 = 1 To INT012
DGet 1, "FILE" + String(INT004), TSTRING003(INT004 + 2)
TSTRING003(INT004 + 2) = RTrim(TSTRING003(INT004 + 2), " ")
If (TSTRING003(INT004 + 2) == "") INT004 = INT012
Next
EndProc
;------------------------------------------------------------------------------
Procedure PROC017()
DPut 1, "Name", TSTRING003(1)
DPut 1, "Lastnum", TSTRING003(2)
For INT004 = 1 To INT012
DPut 1, "FILE" + String(INT004), TSTRING003(INT004 + 2)
Next
EndProc
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 7 End
; 6 Cls
; 2 Wait
; 90 Goto
; 61 Let
; 16 Print
; 4 PrintLn
; 54 If
; 3 DispFile
; 3 FCreate
; 2 FOpen
; 5 FClose
; 13 FGet
; 2 FPut
; 7 FPutLn
; 3 Delete
; 3 Delay
; 2 Inc
; 7 KbdStuff
; 7 AnsiPos
; 1 FreshLine
; 3 SaveScrn
; 3 RestScrn
; 1 ScrFile
; 17 EndProc
; 1 EndFunc
; 1 DCreate
; 1 DOpen
; 1 DnCreate
; 1 DnOpen
; 2 DAdd
; 3 DGo
; 1 DSeek
; 3 DGet
; 5 DPut
;
;
; ■ Functions used :
;
; 1 /
; 94 +
; 3 -
; 23 ==
; 10 <>
; 13 <
; 12 <=
; 3 >
; 24 >=
; 50 !
; 28 &&
; 15 ||
; 1 Upper()
; 7 Chr()
; 1 RTrim()
; 3 U_Name()
; 2 Inkey()
; 19 String()
; 6 CurConf()
; 20 PPEPath()
; 10 PcbNode()
; 5 Exist()
; 1 AnsiOn()
; 1 GetX()
; 2 GetY()
; 1 Crc32()
; 1 DRecCount()
; 1 DSeek()
;
;------------------------------------------------------------------------------
;
; Analysis flags : No flag
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 12 For/Next
; 3 While/EndWhile
; 16 If/Then or If/Then/Else
; 2 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------